﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using DiscoveryLogic.Analytics.DataObjects;
using DiscoveryLogic.Common.Utilities;
using Microsoft.Practices.Composite.Wpf.Events;

namespace DiscoveryLogic.Analytics.UI.Common.Events
{
    public class ExploreEntityEventArgs:RoutedEventArgs
    {
        private EntityBase _SrcEntity;
        /// <summary></summary>
        public EntityBase SrcEntity
        {
            get
            {
                return this._SrcEntity;
            }
            set
            {
                this._SrcEntity = value;
            }
        }

        private EntityType _TgtEntityType;
        /// <summary></summary>
        public EntityType TgtEntityType
        {
            get
            {
                return this._TgtEntityType;
            }
            set
            {
                this._TgtEntityType = value;
            }
        }

        public ExploreEntityEventArgs(EntityBase srcEntity, EntityType tgtEntityType)
            :base()
        {
            this._SrcEntity = srcEntity;
            this._TgtEntityType = tgtEntityType;
        }
    }

    public delegate void OnExploreSelectedEntity(ExploreEntityEventArgs args);

    public class NewRuleFromNetworkEntityArgs:RoutedEventArgs
    {
        private EntityBase _Entity;
        /// <summary></summary>
        public EntityBase Entity
        {
            get
            {
                return this._Entity;
            }
            set
            {
                this._Entity = value;
            }
        }

        public NewRuleFromNetworkEntityArgs(EntityBase entity):base()
        {
            this._Entity = entity;
        }
    }

    public delegate void OnDefineNewRelationRuleFromNetworkEntity(NewRuleFromNetworkEntityArgs args);
}
